// import 'package:baselib/unvariable_base/utils/load_util.dart';
// import 'package:baselib/unvariable_base/utils/log_util.dart';
// import 'package:baselib/unvariable_base/utils/gps_util.dart';
// import 'package:baselib/unvariable_base/utils/toast_utils.dart';
// import 'package:baselib/variable_base/base/base_view_model.dart';
// import 'package:baselib/variable_base/net/api/base_api.dart';
// import 'package:baselib/variable_base/net/baseentity.dart';
// import 'package:baselib/variable_base/utils/res_util.dart';
// import 'package:flutter/cupertino.dart';
// import 'package:module_function/module_comm/model/send_goods_points_entity.dart';
// import 'package:module_function/module_comm/service/module_comm_service.dart';
// import 'package:flutter_baidu_mapapi_map/flutter_baidu_mapapi_map.dart';
// import 'package:flutter_baidu_mapapi_base/flutter_baidu_mapapi_base.dart';
// import 'package:get/get.dart';
//
// /**
//  * 地图逻辑处理类
//  */
// class BDMapViewModel extends BaseViewModel<ModuleCommService>{
//   BuildContext context;
//   ModuleCommService moduleCommService;
//   BMFMapController mapController;
//   BMFPolyline _trafficPolyline;
//   Map<String,dynamic> arguments;
//   dynamic deliveryId;
//   dynamic sendLatitude;
//   dynamic sendLongitude;
//   dynamic sendAddress;
//
//   dynamic receiveLatitude;
//   dynamic receiveLongitude;
//   dynamic receiveAddress;
//
//   @override
//   ModuleCommService createService() => (moduleCommService = ModuleCommService());
//
//
//   @override
//   void onInit() {
//     LogUtil.d('onInit');
//     //'sendLatitude':deliveryListData.sendLatitude,
//     //       'sendLatitude':deliveryListData.sendLongitude,
//     //       'sendAddress':deliveryListData.pickUpUnityAddressName,
//     //
//     //       'receiveLatitude':deliveryListData.receiveLatitude,
//     //       'receiveLongitude':deliveryListData.receiveLongitude,
//     //       'receiveAddress':deliveryListData.receiveUnityAddressName,
//     arguments = Get.arguments??{};
//     deliveryId = arguments['deliveryId'];
//     sendLatitude = arguments['sendLatitude'];
//     sendLongitude = arguments['sendLongitude'];
//     sendAddress = arguments['sendAddress'];
//
//     receiveLatitude = arguments['receiveLatitude'];
//     receiveLongitude = arguments['receiveLongitude'];
//     receiveAddress = arguments['receiveAddress'];
//     super.onInit();
//   }
//   @override
//   void onReady() {
//     LogUtil.d('onInit');
//     super.onReady();
//   }
//   @override
//   void onClose() {
//     if((mapController!=null)&&(_trafficPolyline!=null))mapController.removeOverlay(_trafficPolyline.id);
//     super.onClose();
//   }
//   onBMFMapCreated(BMFMapController bMapController) {
//     try{
//       LogUtil.d('onBMFMapCreated-->0 bMapController=bMapController');
//       mapController = bMapController;
//       LogUtil.d('onBMFMapCreated-->0 mapController=mapController');
//       mapController.showUserLocation(true);
//       LogUtil.d('onBMFMapCreated-->1 mapController=mapController');
//       //显示起止位置
//       showLocation();
//       LogUtil.d('onBMFMapCreated-->2 mapController=mapController');
//       //获取车辆轨迹
//       getPlateInvoicePoints();
//       LogUtil.d('onBMFMapCreated-->3 mapController=mapController');
//     }catch(e){
//       LogUtil.d('onBMFMapCreated-->e=${e.toString()}');
//     }
//   }
//
//   void showLocation() {
//     LogUtil.d('showLocation-->sendLatitude=$sendLatitude,sendLongitude=$sendLongitude,sendAddress=$sendAddress');
//     LogUtil.d('showLocation-->receiveLatitude=$receiveLatitude,receiveLongitude=$receiveLongitude,receiveAddress=$receiveAddress');
//     /// 创建BMFMarker
//     try{
//       // BMFMarker marker = BMFMarker(
//       //   position: BMFCoordinate(double.parse(latitude??'0'), double.parse(longitude??'0')),
//       //   title: 'flutterMaker',
//       //   identifier: 'flutter_marker',
//       //   icon: DrawableUtils.icon_location,
//       //   scaleX: 0.5,
//       //   scaleY: 0.5,
//       // );
//       // /// 添加Marker
//       // mapController?.addMarker(marker);
//       // mapController?.setCenterCoordinate(BMFCoordinate(double.parse(latitude??'0'),
//       //     double.parse(longitude??'0')), true, animateDurationMs: 1000);
//       //添加起止点
//       if((sendLatitude??'').isNotEmpty&&(sendLongitude??'').isNotEmpty){
//         sendLatitude = (sendLatitude==null||sendLatitude==''||sendLatitude=='null')?'0':sendLatitude;
//         sendLongitude = (sendLongitude==null||sendLongitude==''||sendLongitude=='null')?'0':sendLongitude;
//         // List bd09Nums = GpsUtil.gcj02_To_Bd09(double.parse(sendLatitude),double.parse(sendLongitude));
//         List bd09Nums = [double.parse(sendLatitude),double.parse(sendLongitude)];
//         double latitude = bd09Nums[0];
//         double longitude = bd09Nums[1];
//         LogUtil.d('addPoints-->latitude=$latitude,longitude=$longitude');
//         try{
//           BMFMarker marker = BMFMarker(
//             position: BMFCoordinate(latitude, longitude),
//             title: 'flutterMaker',
//             identifier: 'flutter_marker',
//             icon: DrawableUtils.icon_start_local,
//             scaleX: 1,
//             scaleY: 1,
//           );
//           /// 添加Marker
//           mapController?.addMarker(marker);
//           mapController?.setCenterCoordinate(BMFCoordinate(bd09Nums[0],bd09Nums[1]), true, animateDurationMs: 1000);
//
//           mapController.setVisibleMapRectWithPadding(
//               visibleMapBounds: BMFCoordinateBounds(
//                 northeast: BMFCoordinate(bd09Nums[0],bd09Nums[1]),
//                 southwest: BMFCoordinate(bd09Nums[0],bd09Nums[1]),
//               ),
//               insets: EdgeInsets.all(PxUtils.px_20),
//               animated: false
//           );
//         }catch(e){
//           LogUtil.d('showLocation-->e=$e');
//         }
//
//       }
//
//       if((receiveLatitude??'').isNotEmpty&&(receiveLongitude??'').isNotEmpty){
//         receiveLatitude = (receiveLatitude==null||receiveLatitude==''||receiveLatitude=='null')?'0':receiveLatitude;
//         receiveLongitude = (receiveLongitude==null||receiveLongitude==''||receiveLongitude=='null')?'0':receiveLongitude;
//         // List bd09Nums = GpsUtil.gcj02_To_Bd09(double.parse(receiveLatitude),double.parse(receiveLongitude));
//         List bd09Nums = [double.parse(receiveLatitude),double.parse(receiveLongitude)];
//         double latitude = bd09Nums[0];
//         double longitude = bd09Nums[1];
//         LogUtil.d('addPoints-->latitude=$latitude,longitude=$longitude');
//         try{
//           BMFMarker marker = BMFMarker(
//             position: BMFCoordinate(latitude, longitude),
//             title: 'flutterMaker',
//             identifier: 'flutter_marker',
//             icon: DrawableUtils.icon_end_local,
//             scaleX: 1,
//             scaleY: 1,
//           );
//           /// 添加Marker
//           mapController?.addMarker(marker);
//           mapController?.setCenterCoordinate(BMFCoordinate(bd09Nums[0],bd09Nums[1]), true, animateDurationMs: 1000);
//
//           mapController.setVisibleMapRectWithPadding(
//               visibleMapBounds: BMFCoordinateBounds(
//                 northeast: BMFCoordinate(bd09Nums[0],bd09Nums[1]),
//                 southwest: BMFCoordinate(bd09Nums[0],bd09Nums[1]),
//               ),
//               insets: EdgeInsets.all(PxUtils.px_20),
//               animated: false
//           );
//         }catch(e){
//           LogUtil.d('showLocation-->e=$e');
//         }
//       }
//       if(
//       ((sendLatitude??'').isNotEmpty&&(sendLongitude??'').isNotEmpty)
//       &&((receiveLatitude??'').isNotEmpty&&(receiveLongitude??'').isNotEmpty)
//       ){
//         // List sendbd09Nums = GpsUtil.gcj02_To_Bd09(double.parse(sendLatitude),double.parse(sendLongitude));
//         // List receivebd09Nums = GpsUtil.gcj02_To_Bd09(double.parse(receiveLatitude),double.parse(receiveLongitude));
//         List sendbd09Nums = [double.parse(sendLatitude),double.parse(sendLongitude)];
//         List receivebd09Nums = [double.parse(receiveLatitude),double.parse(receiveLongitude)];
//         mapController.setVisibleMapRectWithPadding(
//             visibleMapBounds: BMFCoordinateBounds(
//               northeast: BMFCoordinate(sendbd09Nums[0],sendbd09Nums[1]),
//               southwest: BMFCoordinate(receivebd09Nums[0],receivebd09Nums[1]),
//             ),
//             insets: EdgeInsets.all(PxUtils.px_20),
//             animated: false
//         );
//       }
//
//     }catch(e){
//       LogUtil.d('showLocation-->e=$e');
//     }
//   }
//
//   void getPlateInvoicePoints() async{
//     BaseEntity baseEntity = await moduleCommService.traffic_invoice_getInvoiceRouterPath(parmsMap: {
//       'id':deliveryId
//     });
//     if (baseEntity?.code == BaseApi.SUCCESS_CODE) {
//       SendGoodsPointsEntity invoicePointsEntity=baseEntity?.data;
//       SendGoodsPointsResult sendGoodsPointsResult = invoicePointsEntity?.result;
//       List<CityArray> cityArrays = sendGoodsPointsResult?.cityArray??[];
//       List<ParkArray> parkArrays = sendGoodsPointsResult?.parkArray??[];
//       List<TrackArray> trackArrays = sendGoodsPointsResult?.trackArray??[];
//       //添加路线
//       addPolylines(trackArrays);
//       //添加停车点
//       addParkPoints(parkArrays);
//       LogUtil.d('addPoints-->parkArrays.size=${parkArrays?.length},trackArrays.size=${trackArrays?.length}');
//
//       if(trackArrays.isNotEmpty){
//         addPoints(trackArrays[trackArrays.length-1].lat,trackArrays[trackArrays.length-1].lon,
//             DrawableUtils.icon_car);
//       }
//     } else {
//       ToastUtils.toast(baseEntity?.msg);
//     }
//   }
//
//   void addPoints(String lat,String lon,String imgPath) {
//     List bd09Nums = GpsUtil.gps84_To_bd09(per600000(lat),per600000(lon));
//     double latitude = bd09Nums[0];
//     double longitude = bd09Nums[1];
//     LogUtil.d('addPoints-->latitude=$latitude,longitude=$longitude,imgPath=$imgPath');
//     try{
//       BMFMarker marker = BMFMarker(
//         position: BMFCoordinate(latitude, longitude),
//         title: 'flutterMaker',
//         identifier: 'flutter_marker',
//         icon: imgPath,
//         scaleX: 1,
//         scaleY: 1,
//       );
//       /// 添加Marker
//       mapController?.addMarker(marker);
//       // mapController?.setCenterCoordinate(BMFCoordinate(double.parse(latitude??'0'),
//       //     double.parse(longitude??'0')), true, animateDurationMs: 1000);
//     }catch(e){
//       LogUtil.d('showLocation-->e=$e');
//     }
//   }
//
//   double per600000(String point){
//     var d = (double.parse(point??'0'))/(600000.0);
//     return d;
//   }
//
//   void addParkPoints(List<ParkArray> parkArrays) {
//     (parkArrays??[]).forEach((element) {
//       addPoints(element?.parkLat,element?.parkLon, DrawableUtils.icon_car_park);
//     });
//   }
//
//   void addPolylines(List<TrackArray> trackArrays) {
//
//     List<BMFCoordinate> coordinates = (trackArrays??[]).map((e) {
//       List bd09Nums = GpsUtil.gps84_To_bd09(per600000(e?.lat),per600000(e?.lon));
//       return BMFCoordinate(bd09Nums[0], bd09Nums[1]);
//     }).toList();
//
//     List<int> indexs = [0, 1, 2, 3];
//
//     List<String> textures = List.filled(1, '');
//     textures[0] = DrawableUtils.traffic_texture_unknown;
//
//     _trafficPolyline = BMFPolyline.multiTextureline(
//         coordinates: coordinates,
//         textures: textures,
//         indexs: indexs,
//         width: 12,
//         lineCapType: BMFLineCapType.LineCapButt,
//         lineJoinType: BMFLineJoinType.LineJoinRound);
//     mapController.addPolyline(_trafficPolyline);
//   }
// }